# base.py
# 声明式 ORM 基类和所有模型的统一入口（如SQLAlchemy Base）
from app.db.base_class import Base
from .session import engine

# 您需要确保所有模型都被导入到这个文件可以触及的作用域中
# 这样 Base.metadata 才能注册到它们
from app.models.user import User # noqa: F401



# ======== 新增的 init_db 函数 =========
def init_db():
    """
    初始化数据库，创建所有定义的表。
    这个函数会连接到数据库，并根据所有继承了 Base 的模型，
    执行 "CREATE TABLE IF NOT EXISTS ..." 语句。
    """
    print("正在初始化数据库，创建数据表...")
    # Base.metadata 会持有所有继承自 Base 的表的元信息
    # create_all 会根据这些元信息创建表
    Base.metadata.create_all(bind=engine)
    print("数据库初始化完成。")